window.onload = function () {
    if (window.top != window.self) {
        window.top.location = 'update-psw.html'
    }
}

$(function () {
    $(document).on('blur', "input[name='username']", function () {
        var val = $("input[name='username']").val();
        if (!val) return;
        $.ajax({
            url: "/service/user/checkMobile?userName=" + val,
            type: "get",
            success: function (res) {
                if (res.status != 200) {
                    // showMsg(res.msg)
                    $("input[name='username']").addClass('error').parent().siblings('.err-hint').text(res.msg);
                    $(".confirm").addClass('disabled').prop("disabled", true);
                    $(".get-verify").addClass('disabled').prop("disabled", true);
                } else {
                    if (!res.result) {
                        $(".confirm").addClass('disabled').prop("disabled", true);
                        $(".get-verify").addClass('disabled').prop("disabled", true);
                        $("input[name='mobile']").val('').prop("disabled", true).addClass('error').parent().siblings('.err-hint').text('没有预留手机号，无法使用找回密码功能，请联系管理员');

                    } else {
                        $(".confirm").removeClass('disabled').prop("disabled", false);
                        $(".get-verify").removeClass('disabled').prop("disabled", false);
                        $("input[name='username']").removeClass('error').parent().siblings('.err-hint').text('');
                        $("input[name='mobile']").val(res.result).prop("disabled", true).removeClass('error').parent().siblings('.err-hint').text('');
                    }
                }
            },
            error: function (err) {
                showMsg("系统错误，请稍后重试")
            }
        })
    }).on('click', ".get-verify", function (e) {
        var flag = validatePassword() && validateMobile();
        if (!flag) return false;

        getVerify()
    }).on('click', ".confirm", function () {
        var flag = validatePassword() && validateMobile();
        if (!flag) return false;

        confirm();
    })


    function getUrlParam(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
        var r = window.location.search.substr(1).match(reg); //匹配目标参数
        if (r != null) return unescape(r[2]);
        return null; //返回参数值
    }

    function validatePassword() {
        var psw = $('input[name="newPassword"]').val();
        var confirmPsw = $('input[name="confirmPassword"]').val();
        var reg = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,20}$/;
        if (!reg.test(psw)) {
            $('input[name="newPassword"]').addClass('error').parent().siblings('.err-hint').text("必须同时包含数字、大小写字母，且8-20位的组合");
        } else if (psw !== confirmPsw) {
            $('input[name="confirmPassword"]').addClass('error').parent().siblings('.err-hint').text("两次输入密码不一致，请重新输入");
        } else {
            $('input[name="newPassword"]').removeClass('error').parent().siblings('.err-hint').text("");
            $('input[name="confirmPassword"]').removeClass('error').parent().siblings('.err-hint').text("");
            return true;
        }
    }

    function validateMobile() {
        let mobile = $('input[name="mobile"]').val();
        let isMobile = /^1[3456789]\d{9}$/;
        if (!mobile) {
            $('input[name="mobile"]').addClass('error').parent().siblings('.err-hint').text("请输入手机号");
            return false;
        } else if (!isMobile.test(mobile)) {
            $('input[name="mobile"]').addClass('error').parent().siblings('.err-hint').text("手机号格式不正确");
            return false;
        } else {
            $('input[name="mobile"]').removeClass('error').parent().siblings('.err-hint').text("");
            return true;
        }
    }

    function getVerify() {
        var data = {
            username: $('input[name="username"]').val(),
            newPassword: $('input[name="newPassword"]').val(),
            confirmPassword: $('input[name="confirmPassword"]').val(),
            mobile: $('input[name="mobile"]').val()
        }
        $.ajax({
            url: "/service/user/sms",
            type: "post",
            data: data,
            success: function (res) {
                if (res.status != 200) {
                    // showMsg()
                    $('input[name="mobile"]').addClass('error').parent().siblings('.err-hint').text(res.msg);
                } else {
                    countdown(60);
                }
            },
            error: function (err) {
                // showMsg('系统错误，请稍后重试')
                $('input[name="mobile"]').addClass('error').parent().siblings('.err-hint').text('系统错误，请稍后重试');

            }
        })
    }

    function showMsg(msg) {
        var toaster = '<div class="toaster"><p class="hint">' + msg + '</p></div>';

        $("body").append(toaster);
        setTimeout(function () {
            $('body').find('.toaster').remove();
        }, 2000);
    }

    function countdown(second) {
        second--;
        if (second < 0) {
            $(".get-verify").prop("disabled", false).removeClass('disabled');
            $(".get-verify").text('获取验证码');
            return;
        } else {
            $(".get-verify").prop("disabled", true).addClass('disabled');
            $(".get-verify").text(second + '秒后重发');
            setTimeout(function () {
                countdown(second);
            }, 1000);
        }
    }

    function confirm() {
        var data = {
            username: $('input[name="username"]').val(),
            newPassword: $('input[name="newPassword"]').val(),
            confirmPassword: $('input[name="confirmPassword"]').val(),
            mobile: $('input[name="mobile"]').val(),
            verifyCode: $('input[name="verifyCode"]').val()
        }
        $.ajax({
            url: "/service/user/updatepassword",
            type: "post",
            data: data,
            success: function (res) {
                if (res.status != 200) {
                    // showMsg(res.msg)
                    $('input[name="verifyCode"]').addClass('error').parent().siblings('.err-hint').text(res.msg);
                } else {
                    var str = window.location.href;
                    var hostUrl = str.indexOf("px") > -1 ? "//sup-dev.winxuan.com/#/ucenter/sign-in" : "//xuanzhi.winxuan.com/#/ucenter/sign-in";
                    var hostUrl2 = str.indexOf("-beta") > -1 ? "//www-beta.cnpdx.com" : "//www.cnpdx.com";
                    var url = getUrlParam('returntype') == 1 ? hostUrl2 : hostUrl;
                    $('input[name="verifyCode"]').removeClass('error').parent().siblings('.err-hint').text('');
                    showMsg("密码修改成功!");
                    setTimeout(function () {
                        window.location.href = url;
                    }, 2000);
                }
            },
            error: function (err) {
                // showMsg('系统错误，请稍后重试')
                $('input[name="verifyCode"]').addClass('error').parent().siblings('.err-hint').text('系统错误，请稍后重试');
            }
        })
    }

})
